package system

import (
	"time"

	"github.com/flipped-aurora/gin-vue-admin/server/global"
)

// SysLoginRecord 用户登录记录 结构体
type SysLoginRecord struct {
	global.GVA_MODEL
	UserID   uint   `json:"user_id" gorm:"column:user_id;comment:关联用户ID;not null"`      // 关联用户ID
	IP       string `json:"ip" gorm:"column:ip;size:45;comment:客户端公网IP;not null"`       // 客户端公网IP
	Country  string `json:"country" gorm:"column:country;size:2;comment:ISO-3166两位国家码"` // ISO-3166两位国家码
	Province string `json:"province" gorm:"column:province;size:32;comment:省/州"`        // 省/州
	City     string `json:"city" gorm:"column:city;size:32;comment:城市"`                 // 城市
	UA       string `json:"ua" gorm:"column:ua;size:512;comment:User-Agent"`            // User-Agent
	//LoginAt  time.Time `json:"login_at" gorm:"column:login_at;comment:登录时间;default:CURRENT_TIMESTAMP"` // 登录时间
	LoginAt time.Time `json:"login_at" gorm:"column:login_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:登录时间"`
	Result  *bool     `json:"result" gorm:"column:result;comment:登录结果 1=成功,0=失败"` // 登录结果
	Reason  string    `json:"reason" gorm:"column:reason;size:64;comment:失败原因"`   // 失败原因
}

// TableName 自定义表名
func (SysLoginRecord) TableName() string {
	return "sys_login_records"
}
